
package br.ucb.cesbdao.modeloTabelas;

/**
 * Síntese
 *    Atributos: atendentes e colunas
 *    Métodos: 
 *    		ModeloTabelaTrabalhador(), 
 *    		getTrabalhadors() , setTrabalhadors(ArrayList<Pessoa>), 
 *    		getColunas() , setColunas(String[]), 
 *    		getColumnName(int), 
 *    		getColumnCount(), 
 *    		getRowCount() e 
 *    		getValueAt(int, int).
 * 
 */

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import br.ucb.cesbdao.beans.Trabalhador;
import br.ucb.cesbdao.servicos.DateUtil;

@SuppressWarnings("serial")
public class ModeloTabelaAtendente extends AbstractTableModel{

    private List<Trabalhador> atendentes  = null;
    private String []colunas = new String[] {"Nome","CPF", "Data Nascimento", "Sexo","Endereço", "Telefone", "Email", "Código de Sócio", "Status"};

    public ModeloTabelaAtendente(){
        this.atendentes = new ArrayList<Trabalhador>();
    }

    public List<Trabalhador> getTrabalhadors() {
        return atendentes;
    }

    public void setTrabalhadors(ArrayList<Trabalhador> atendentes) {
        for(Trabalhador atendente : atendentes)
           this.atendentes.add(atendente);
    }

    public String[] getColunas() {
        return colunas;
    }

    public void setColunas(String[] colunas) {
        this.colunas = colunas;
    }

    @Override
    public String getColumnName(int col){
        return colunas[col];
    }

    public int getColumnCount() {
        return getColunas().length;
    }

    public int getRowCount() {
        return getTrabalhadors().size();
    }
    public Trabalhador getTrabalhadorAt(int row){
    	return atendentes.get(row);
    }
    
    public Object getValueAt(int rowIndex, int columnIndex) {
            Trabalhador atendente = (Trabalhador)atendentes.get(rowIndex);
            switch(columnIndex){
                case 0:
                    return atendente.getNome();
                case 1:
                	return atendente.getCpf();
                case 2:
                    return DateUtil.formatDateOut(atendente.getDataNascimento());
                case 3:
                    return atendente.getSexo()=='M'?"Masculino":"Feminino";
                case 4:
                    return atendente.getEndereco();
                case 5:
                    return atendente.getTelefone();
                case 6:
                    return atendente.getEmail();
                case 7:
                    return atendente.getIdSocio();
                case 8:
                    return atendente.getStatus() == 'A'?"Ativo":"Inativo";
            }
            return null;
    }
}
